package br.com.plurianual.util.converter;

import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
import javax.faces.convert.FacesConverter;

import org.apache.commons.lang3.StringUtils;

import br.com.plurianual.exception.DataAccessLayerException;
import br.com.plurianual.model.entity.UnidadeOrcamentaria;
import br.com.plurianual.service.UnidadeOrcamentariaService;

@FacesConverter(value="unidadeOrcamentariaConverter")
public class UnidadeOrcamentariaConverter  implements Converter {

	@Override
	public Object getAsObject(FacesContext context, UIComponent component, String value) {
		if(!StringUtils.isNumeric(value)){
			return new UnidadeOrcamentaria();
			
		}
		Integer primaryKey = Integer.parseInt(value);
		
		UnidadeOrcamentariaService service = new UnidadeOrcamentariaService();
		UnidadeOrcamentaria unidadeOrcamentaria = null;
		try {
			unidadeOrcamentaria = service.getUnidadeOrcamentariaDAO().findById(primaryKey);
		} catch (DataAccessLayerException e) {
			e.printStackTrace();
		}
		
		return unidadeOrcamentaria;
	}
	
	@Override
	public String getAsString(FacesContext context, UIComponent component, Object value) {
		UnidadeOrcamentaria unidadeOrcamentaria = (UnidadeOrcamentaria) value;
		if(unidadeOrcamentaria ==  null || unidadeOrcamentaria.getId() ==  null){
			return null;
		}
		return unidadeOrcamentaria.getId().toString();
	}
}


